#include <iostream>
#include <list> //双向链表

int main()
{

    std::list<int> l;
    l.push_back(1);
    l.push_front(2);
    for(auto ite = l.begin();ite != l.end();)
    {
        if(*ite == 2)
        {
            ite = l.erase(ite);
        }
        else
        {
            ite++;
        }
    }

    //没有重载[]，没有重载+（不支持随机迭代器），但是可以重载++ --，因为可以往前往后
    auto ite = l.begin();
    ite++;
    ite--;

    for(auto ite = l.begin(); ite != l.end(); ite++)
    {
        std::cout<<*ite<<" ";
    }
    std::cout<<std::endl;
    return 0;
}